#include <stdio.h>
#include<stdlib.h>
typedef struct _node{
	int data;
	struct _node *pre;
	struct _node *next;
	
}node;
node* init()
{
	node* l=(node*)malloc(sizeof(node));
 	l->data=0;
	l->pre=l;
	l->next=l;
	return l;
}
void hi(node* l,int data)
{
	node* n=(node*)malloc(sizeof(node));
	n->data=data;
	if(0==l->data){
		l->next=n;
		n->pre=l;
		n->next=l;
		l->pre=n;
	}else{
		l->next->pre=n;
		n->next=l->next;
		l->next=n;
		n->pre=l;
	}
	l->data+=1;
}
void ti(node* l,int data)
{
	node* n=(node*)malloc(sizeof(node));
	n->data=data;
	node* cur=l->next;
	if(0==cur->data){
		hi(l,data);
		return;
	}else{
		l->pre->next=n;
		n->pre=l->pre;
		n->next=l;
		l->pre=n;
	}
	l->data+=1;
}
int del(node* l,int data)
{
	node* cur=l->next;
	while(cur !=l){
		if(cur->data!=data){
		    cur->pre->next=cur->next;
			cur->next->pre=cur->pre;
			free(cur);
			cur->data-=1;
			return 1;
		}	
		cur=cur->next;
	}
	return 0;
}
void display(node* l)
{
	node* cur=l;
	while(cur != l)
	{
		printf("%d",cur->data);
		cur=cur->next;
	}
	printf("\n");
}
int main()
{
	node* l=init();
	hi(l,1);	
	hi(l,2);	
	hi(l,3);	
	hi(l,4);	
	hi(l,5);	
	ti(l,6);	
	ti(l,7);	
	ti(l,8);	
	ti(l,9);	
	ti(l,10);	
	display(l);
	del(l,5);
	del(l,7);
	del(l,8);
	display(l);
	return 0;
}
